package com.taru.order.util;

import com.taru.order.entity.Comment;

import java.util.ArrayList;
import java.util.List;

public class ListToTree {
    /**
          * List转换成tree
          * @param listOr
          * @param orderId
          * @return
          */
    public static List<Comment> initTree(List<Comment> list, String commentId){
        List<Comment> arrayList=new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            Comment comment=list.get(i);
            //如果有父级id与id相同，则证明当前类为orderId的子类
            if(comment.getParent_id().equals(commentId)){
                //判断该子类下是否还有子类
                List<Comment> listOrs=initTree(list,comment.getComment_id());
                //如果有子类，则判断children中是否已经赋值
                if(listOrs.size()>0){
                    //如果已经children已经赋值，则使用for循环将子类加入到children中
                    if(null!=comment.getChildren() && comment.getChildren().size()>0){
                        List<Comment> chilCate=comment.getChildren();
                        for(int j = 0; j < listOrs.size(); j++) {
                            chilCate.add(listOrs.get(j));
                        }
                        comment.setChildren(chilCate);
                    }else{//如果没有赋值，则将数据直接加入到children中
                        comment.setChildren(listOrs);
                    }
                    arrayList.add(comment);
                }else { //如果没有值，直接加入到arrayLis
                    List<Comment> otherList =new ArrayList<>();
                    comment.setChildren(otherList);
                    arrayList.add(comment);
                }
            }
        }
        return arrayList;
    }
}
